package dao.jpa;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import util.UtilColecao;
import dao.ItemVendaDAO;
import entity.ItemVenda;
import entity.Produto;

@Repository
public class ItemVendaJpaDAO extends GenericJpaDAO<ItemVenda> implements
		ItemVendaDAO, Serializable {

	private static final long serialVersionUID = -7769051838144785979L;

	@Override
	public List<ItemVenda> listarVendasProdutoPorPeriodo(final Produto produto,
			final Date dataInicial, final Date dataFinal) {
		final Criteria criteria = criarCriteria();
		criteria.add(Restrictions.eq("produto", produto));

		return UtilColecao.checkedList(
				criteria.createCriteria("venda")
						.add(Restrictions.between("dataVenda", dataInicial,
								dataFinal)).list(), ItemVenda.class);
	}

	@Override
	public List<ItemVenda> listarItensVendasPorPeriodo(final Date dataInicial,
			final Date dataFinal) {
		final Criteria criteria = criarCriteria();

		return UtilColecao.checkedList(
				criteria.createCriteria("venda")
						.add(Restrictions.between("dataVenda", dataInicial,
								dataFinal)).list(), ItemVenda.class);
	}
}
